Modern computer operating systems employ power management techniques to minimize the power utilized by the computer, operates the computer and its peripheral devices at the lowest feasible power level to accomplish the task on hand, and reduce noise. In portable (laptop) computers, power management is designed to improve the battery life and performance may be sacrificed in this regard. Similarly, if a computer system is on a battery-powered backup device, minimizing power consumption is essential in order that the computer remain operable until the AC mains power is restored. However, even in computers operating from the AC mains, energy conservation has become an important capability of the computer operating system. Given the large number of computers that may be operating at one time for a particular employer, for example, the power savings can save significant costs for electrical energy. In addition, the thermal load on the computer will be reduced, thereby increasing its reliability. Furthermore, with unused devices shut down, the noise generated by the system can be reduced.
In a system such as Microsoft Windows®, for example, there are five levels of system power state definitions:
PowerWork StateLevelor SleepDescriptionS0WorkingThe system is on. The CPU is fully up andrunning and power conservation is on a per-device basis.S1SleepThe system appears off. The CPU is stopped;RAM is refreshed; and the system is running in alow power mode.S2SleepThe system appears off. The CPU has no power;RAM is refreshed; the system is in a lower powermode than S1.S3SleepThe system appears off. The CPU has no power;RAM is in a slow refresh mode; and the powersupply is in a reduced power mode.S4HibernateThe system appears off. The hardware iscompletely off, but system memory has beensaved to disk.S5OffThe system is off. The hardware is completelyoff, the operating system has shut down; nothinghas been saved. Requires a complete reboot toreturn to the working state S0.
In several of the power states, the user can hit any key or move his mouse in order to restore the system to the working state. In other lower power modes, the user may have to push a specified button in order to restore normal operation. In the S5 (off) state, the user would have to hit the power button in order to reboot the computer into its normal operation. Once the user has taken this action, the user would like the system to return to normal operation or “resume” very rapidly. A current requirement on the operating system is being resumed from standby to being able to see that start button on the display within 3.5 seconds. However, as drivers become more complicated such as gigabit Ethernet drivers and wireless Lan drivers, this task is becoming more complicated. In fact, if one utilizes certain flash media cards with a laptop computer, it takes more than 10 seconds for the laptop computer to return to normal operation from the low power state.
One technique that has been proposed is that the driver handle system interrupts (S-IRPS) and device interrupts (DIRPS) to correctly plug and play and power up a device. Normal resume from standby requires that a driver handle both interrupts. However, the device interrupts usually take the longest amount of time. In some drivers, it may be possible to create a fast-resume by handling the system interrupts first and then create a call back so that the power management driver will finish with all of the other drivers in the operating system and then bring the video on line. After this is completed, the power management driver will then call back to the device driver so that it can complete the device interrupts. In addition to there being no current documentation on how this approach might work, not all drivers can implement this function. Drivers such as video, Lan, storage and smartcard drivers have difficulty implementing this type of operation because they have time critical device initialization that will have to be performed before the operating system can come up. Furthermore, many drivers already in the operating system do not have this function. It would take a lot of time and therefore be costly to make these drivers compatible with this scheme. In addition, laptop computers going into such low power modes utilizing this scheme become confused because while the driver is trying to handle d-rips to come out of standby or to go into hibernate, the power management system tries to pass down power management commands to go into hibernate. The driver tries to tell the operating system that it can not at this time go into hibernate and the operating system will detect an error.
Accordingly, there is a need for a faster way to resume normal operation from a low power state.